﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.IO;
using System.Text;
using System.Web.UI.WebControls;
using Suspiros_ObjetosNegocio;
using Suspiros_Persistencia;

namespace SuspirosWeb
{
    public partial class Formulario_web110 : System.Web.UI.Page
    {

        PagoDAO pagos = new PagoDAO();
        CarritoDAO carritos = new CarritoDAO();
        OrdenDAO ordenes = new OrdenDAO();

        protected void Page_Load(object sender, EventArgs e)
        {

        }

        /*
         * Siguiente paso para realizar la compra del carrito = Registrar Datos Pago
         */
        protected void btnComprar_Click(object sender, EventArgs e)
        {
            //recupera el id del carrito y el monto a pagar
            int idCarrito = Convert.ToInt32(Request.QueryString["idCarrito"]);
            double total = Convert.ToDouble(Request.QueryString["cant"]);
            string nomTarjeta = txtNomTarjeta.Text;
            string numTarjeta = txtNumTarjeta.Text;
            string code = txtCodSeg.Text;
            string exp = txtFechaExp.Text;
            string tipo = ddlTipoTarjeta.SelectedItem.Text;
            //crea el nuevo pago...
            Pago pago = new Pago(numTarjeta, code, exp, nomTarjeta, tipo);
            //agrega el pago y recupera el id...
            int idPago = pagos.agregarPago(pago);
            //si se agrego correctamente, agrea  el nuevo pago al carrito..d
            if (idPago != 0)
            {
                carritos.agregarPagoCarrito(idCarrito, idPago);
                Orden orden = new Orden(DateTime.Now, total);
                int idOrden = ordenes.agregarOrden(orden);
                carritos.agregarOrdenCarrito(idCarrito, idOrden);
                carritos.actualizaStatusCarrito(idCarrito);
                Response.Redirect("../vistas/FormatoRptPago.aspx?idCarrito=" + idCarrito);
            }
            else
            {
                //Declaramos un StringBuilder para almacenar el alert que queremos mostrar
                StringBuilder sbMensaje = new StringBuilder();
                //Aperturamos la escritura de Javascript
                sbMensaje.Append("<script type='text/javascript'>");
                //Le indicamos al alert que mensaje va mostrar
                sbMensaje.AppendFormat("alert('{0}');", "Error");
                //Cerramos el Script
                sbMensaje.Append("</script>");
                //Registramos el Script escrito en el StringBuilder
                ClientScript.RegisterClientScriptBlock(this.GetType(), "mensaje", sbMensaje.ToString());
            }
        }

        protected void btnCancelar_Click(object sender, EventArgs e)
        {
            Response.Redirect("../vistas/CarProducts.aspx");
        }
    }
}